"""
要求：输入开始数字和结束数字，打印区间内的所有素数
素数：如果数字只能被1或自己整除的数就是素数
"""


# 定义一个函数is_prime，用于判断一个数是否为素数
def is_prime(num):
    """判断一个数是否为素数"""
    # 如果数字小于等于1，则它不是素数，因为素数定义为只能被1和它本身整除的大于1的自然数
    if num <= 1:
        return False
        # 对于大于1的数，我们检查从2到该数的平方根（包括平方根的整数部分）之间的所有数
    # 之所以检查到平方根，是因为如果num有一个因子大于它的平方根，那么它必定还有一个小于或等于平方根的因子
    # 因此，我们只需要检查到平方根即可
    for i in range(2, int(num ** 0.5) + 1):
        # 如果num能被i整除（即余数为0），则num不是素数
        if num % i == 0:
            return False
            # 如果num不能被2到它的平方根之间的任何数整除，则它是素数
    return True

# 定义一个列表存储素数
prime_numbers = []
# 定义一个函数print_primes_in_range，用于打印区间内的所有素数
def print_primes_in_range(start, end):
    """打印区间内的所有素数"""
    # 遍历指定区间内的每一个数
    for num in range(start, end + 1):
        # 调用is_prime函数检查当前数是否为素数
        if is_prime(num):
            # 如果当前数是素数，则打印出来
            prime_numbers.append(num)
    print(f"在这个区间段内的素数有：{prime_numbers}")

        # 以下是程序的主部分，用于获取用户输入并调用上述函数


# 提示用户输入开始数字，并将输入转换为整数
start = int(input("请输入开始数字: "))
# 提示用户输入结束数字，并将输入转换为整数
end = int(input("请输入结束数字: "))

# 调用print_primes_in_range函数，打印指定区间内的所有素数
print_primes_in_range(start, end)